package com.hxk.controller;

import javax.validation.Valid;

import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;

import com.hxk.pojo.User;
/**
 * springboot集成hibernate-validator数据校验
 * 常用校验注解：
 *  @NotBlank: 判断字符串是否为 null 或者是空串(去掉首尾空格)。
	@NotEmpty: 判断字符串是否 null 或者是空串。
	@Length: 判断字符的长度(最大或者最小)
	@Min: 判断数值最小值
	@Max: 判断数值最大值
	@Email: 判断邮箱是否合法
 * @author Cactus
 */
@Controller
public class UserController {
	/**
	解决异常的方式。可以在跳转页面的方法中注入一个 Uesrs 对象。
	* 注意：由于 springmvc 会将该对象放入到 Model 中传递。key 的名称会使用
	该对象的驼峰式的命名规则来作为 key。
	* 参数的变量名需要与对象的名称相同。将首字母小写。
	* */
	@RequestMapping("/addUser")
	public String showPage(@ModelAttribute("aa") User user) {
		return "add";
	}
	/**
	* 完成用户添加
	*@Valid 开启对 Users 对象的数据校验
	*BindingResult:封装了校验的结果
	*@ModelAttribute修改默认（user）校验对象为aa，
	*/
	@RequestMapping("/save")
	public String save(@ModelAttribute("aa") @Valid User user, BindingResult result) {
		System.out.println(user);
		if(result.hasErrors()) {
			return "add";
		}
		return "ok";
	}
}
